(:
OsmNotes: Carlos Andres Gonzalez Ramirez
Recibir respuesta Consulta Inventario
Fecha Creacion: 2012/01/25
:)

declare namespace oms="urn:com:metasolv:oms:xmlapi:1";
declare namespace automator = "java:oracle.communications.ordermanagement.automation.plugin.ScriptReceiverContextInvocation";
declare namespace context = "java:com.mslv.oms.automation.TaskContext";

declare namespace saxon="http://saxon.sf.net/";
declare namespace xsl="http://www.w3.org/1999/XSL/Transform";
declare namespace log = "java:org.apache.commons.logging.Log";

declare namespace nsrpta="http://www.osmnotes.wordpress.com/Inventario";

declare variable $automator external;
declare variable $context external;
declare variable $log external;

(: Se asigna el contenido completo del task data a una variable:)
let $order := fn:root(automator:getOrderAsDOM($automator))/oms:GetOrder.Response
(: Se asigna el numero de orden a una variable:)
let $idOrden := $order/oms:OrderID

(: Se asigna el contenido completo de la respuesta del activador una variable:)
let $respuestaInventario := /nsrpta:ResponseConsultaInventario
(: Se serializa el contenido completo de la respuesta del activador y se asigna a una variable:)
let $respuestaInventarioXml := saxon:serialize($respuestaInventario, <xsl:output method='xml' omit-xml-declaration='yes' indent='yes' saxon:indent-spaces='4'/>)

return
(
		(: Se imprime en la consola weblogic el contenido completo de la respuesta del inventario :)
		log:info($log, fn:concat('OsmNotes Log Message: respuestaInventarioXml[', $respuestaInventarioXml, ']')),
		(: Se habilita la opcion de actualizar la orden desde el Xquery :)
		automator:setUpdateOrder($automator,"true"),
		(: En caso que el xquery se ejecute satisfactoriamente se completa la tarea por el camino de Exito :)
		context:completeTaskOnExit($context, "success"),
		(: Se crea el xml para actualizar los datos de la orden :)
		<OrderDataUpdate xmlns="http://www.metasolv.com/OMS/OrderDataUpdate/2002/10/25">
			<Add path="/InformacionGestionIntercambios/InformacionIntercambiosInventario">
					<InformacionIntercambioInventario>
						<IdPeticionInventario>{$idOrden/text()}</IdPeticionInventario>
						(: Se actualiza el nodo XMLType con la respuesta XML recuperada del inventario :)
						<XMLRespuestaInventario>{$respuestaInventario}</XMLRespuestaInventario>
					</InformacionIntercambioInventario>
			</Add>
		</OrderDataUpdate>
)